﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;

namespace UBCon.Ribbon
{
    /// <summary>
    /// Represents a header control for grouped contextual UBCon.Ribbon.RibbonTabItem controls.
    /// </summary>
    internal class ContextualItemsHeader:Control
    {
        //------------------------------------------------------
        //
        //  Constructors
        //
        //------------------------------------------------------
        #region Constructors

        /// <summary>
        /// Default static constructor.
        /// </summary>
        static ContextualItemsHeader()
        {
            Type ownerType = typeof(ContextualItemsHeader);

            ContextualItemsHeader.DefaultStyleKeyProperty.OverrideMetadata(ownerType, 
                new FrameworkPropertyMetadata(ownerType));
        }

        #endregion

        //------------------------------------------------------
        //
        //  Properties
        //
        //------------------------------------------------------
        #region Properties

        /// <summary>
        /// Gets or sets brush of this control. 
        /// This is a dependency property.
        /// </summary>
        internal Brush Brush
        {
            get { return (Brush)GetValue(BrushProperty); }
            set { SetValue(BrushProperty, value); }
        }

        /// <summary>
        /// Identifies the UBCon.Ribbon.ContextualItemsHeader.Brush dependency property.
        /// </summary>
        internal static readonly DependencyProperty BrushProperty =
            DependencyProperty.Register("Brush", typeof(Brush), typeof(ContextualItemsHeader));

        /// <summary>
        /// Gets or sets title text of this control. 
        /// This is a dependency property.
        /// </summary>
        internal string Title
        {
            get { return (string)GetValue(TitleProperty); }
            set { SetValue(TitleProperty, value); }
        }

        /// <summary>
        /// Identifies the UBCon.Ribbon.ContextualItemsHeader.Title dependency property.
        /// </summary>
        internal static readonly DependencyProperty TitleProperty =
            DependencyProperty.Register("Title", typeof(string), typeof(ContextualItemsHeader));

        /// <summary>
        /// Gets or sets a boolean value which indicates whether this control is active or not.
        /// This is a dependency property.
        /// </summary>
        internal bool IsActive
        {
            get { return (bool)GetValue(IsActiveProperty); }
            set { SetValue(IsActiveProperty, value); }
        }

        /// <summary>
        /// Identifies UBCon.Ribbon.ContextualItemsHeader.IsActive dependency property.
        /// </summary>
        internal static readonly DependencyProperty IsActiveProperty =
            DependencyProperty.Register("IsActive", typeof(bool), typeof(ContextualItemsHeader), 
            new PropertyMetadata(false));

        
        #endregion

        //------------------------------------------------------
        //
        //  Depenency Property Changed Callbacks
        //
        //------------------------------------------------------
        #region Depenency Property Changed Callbacks
        #endregion

        //------------------------------------------------------
        //
        //  Overrides
        //
        //------------------------------------------------------
        #region Overrides

        #endregion

        //------------------------------------------------------
        //
        //  Public Methods
        //
        //------------------------------------------------------
        #region Public Methods
        #endregion

        //------------------------------------------------------
        //
        //  Internal Methods
        //
        //------------------------------------------------------
        #region Internal Methods
        #endregion

        //------------------------------------------------------
        //
        //  Private Methods
        //
        //------------------------------------------------------
        #region Private Methods
        #endregion

        //------------------------------------------------------
        //
        //  Event Handlers
        //
        //------------------------------------------------------
        #region Event Handlers
        #endregion

        //------------------------------------------------------
        //
        //  Fields
        //
        //------------------------------------------------------
        #region Fields
        #endregion

        //------------------------------------------------------
        //
        //  Events
        //
        //------------------------------------------------------
        #region Events
        #endregion

        //------------------------------------------------------
        //
        //  Commands
        //
        //------------------------------------------------------
        #region Commands
        #endregion
    }
}
